#ifndef CLPRS_H
#define CLPRS_H
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <gst/gst.h>

typedef struct clprs_uri clprs_uri_t;
typedef struct _clprs_server clprs_server;
typedef struct _clprs_server_bin clprs_server_bin;

struct clprs_uri{
	gchar	*auri_str;
	gint	aport;
	gchar   *acaps;
	gchar	*vuri_str;
	gint	vport;
	gchar   *vcaps;
};

struct _clprs_server_bin{
	clprs_uri_t *uri;
	GstElement *vudpsrc;
	GstElement *vrtpjitterbuffer;
	GstElement *rtph264depay;
	GstElement *h264parse;
	/* video mix*/
	GstElement *decodebin;
	GstElement *dqueue;
	GstElement *videomixer;
	GstElement *videoconvert;
	GstElement *x264enc;

	GstElement *audpsrc;
	GstElement *artpjitterbuffer;
	GstElement *rtppcmudepay;
	GstElement *mulawdec;
	GstElement *audioconvert; 
	GstElement *voaacenc;
	/* audio mix*/
	GstElement *audiomixer; 
};

struct _clprs_server{
	GMainLoop *loop;
	GstElement *pipeline;

	GstElement *mp4mux;
	GstElement *filesink;

	gboolean	is_mix;
	clprs_server_bin *server_bin[];
};

#endif
